package thread;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 刘远望
 * Date: 2025-05-25
 * Time: 18:07
 */
//wait方法
public class Demo22 {
    public static void main(String[] args) throws InterruptedException {
        Object locker = new Object();
        System.out.println("wait 之前");
        synchronized (locker) {
            //代码进入wait就会先释放锁，并且阻塞等待
            //如果其他线程完成了必要的工作 调用notify唤醒这个wait线程 wait就会解除阻塞 重新获取锁 继续执行到返回
            locker.wait();//与锁对象必须一致
            /**
             * 执行wait第一件事就是先释放locker对象对应的锁 能够释放锁的前提是 locker对象应该处于加锁状态 才能释放
             * 如果没有加锁的话就会报锁状态异常的错误
             */

        }
        System.out.println("wait 之后");
    }
}
